import Vue from 'vue'
// 导入request
import request from "@/utils/request.js"
import cache from "@/utils/cache.js"

/**
 * 这些组件只能是vue的组件和vue的页面使用，而像request和状态管理这些都是脱离了vue的生命周期
 */
export default{
	install: (app,options)=>{
		
		// #ifndef VUE3
		console.log("options",options)
		
		/* 原型链扩展 */
		Vue.prototype.$request = request
		// 挂载缓存
		Vue.prototype.$cache = cache
		// 扩展提示
		Vue.prototype.$toast = (title,icon="none")=>{
			uni.showToast({title,icon})
		}
		
		// 查询用户信息
		Vue.prototype.$getUserInfo = (userId="")=>{
			if(!userId){
				userId = cache.get("user").id
			}
			return request.post(Vue.prototype.$api.getUserInfo + "/" + userId)
			
		}
		// 扩展是否登录
		Vue.prototype.$isLogin = async(url)=>{
			const resData = await request.post("/user/islogin")
			const isLogin = resData.isLogin
			// 用户处于登录，然后传递数据
			if(isLogin){
				const user = cache.get("user")
				return Promise.resolve(user)
			}else{
				uni.navigateTo({
					url: "/login/login?back=1&backurl=" + url
				})
				return Promise.reject()
			}
		}
		/* 扩展一个%api */
		Vue.prototype.$api = {
			// 登录
			login: `/user/login`,
			// 退出
			logout: `/user/logout`,
			// 是否登录
			isLogin: `/user/islogin`,
			// 更新手机
			updateUserTel: `/user/updateUserTel`,
			// 人脸识别
			createUserFaceModel: `/user/face/create`,
			// 人脸识别校验
			verificateUserFace: `/user/face/verify`,
			// 用户信息更新
			updateUserInfo:'/user/info/update',
			// 获取用户信息
			getUserInfo: '/user/get',
			
			
			
			// 查询课程
			findCoursePage: "/course/page",
			// 查询课程分类
			findCategories: "/course/category",
			// 查询合并
			findCategoriesIndex: "/course/index",
			// 明细获取
			getCourseDetail: "/course/get",
			// 根据课程id查询对应章节的信息
			getChapterLessonDetail: "/course/chapterlesson",
			// 根据课程id查询对应章节的信息（去除空字段）
			getChapterLessonDetailMap: "/course/chapterlessonmap",
			// 查询相关课程信息
			findCoursePageRelation: "/course/relation",
			// 课程点赞
			insertCourseParise: '/course/parise/save',
			// 取消课程点赞
			cancelCoursePrise: '/course/parise/cancel',
			// 课程排行榜
			courseParisePank: '/course/parise/rank',
			
			
			
			// 腾讯cos的文件上传
			uploadCosPrivateFile: "/upload/cos/file",
			// miniIO的文件上传
			uploadMinioFile:'/upload/minio/file',
			
			
			
			// 购买课程下单
			buyCourse: '/order/buy',
		}
		// #endif
		
		
		
		// 使用vue3的方式
		// #ifdef VUE3
		app.globalProperties.$api = {}
		
		// #endif
	}
}